home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / pascal / pcxbgi2.exe / READHC.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-03-03  |  5.5 KB  |  125 lines

  1. /* readhc.c - read hard-coded
  2.    by marty balash
  3.    03/02/91
  4.    how to  read an image from code created by CIMAGE.EXE
  5. */
  6. #include <graphics.h>
  7. #include <alloc.h>
  8. #include <fcntl.h>
  9. #include <sys/stat.h>
  10. #include <string.h>
  11. #include <io.h>
  12.  
  13. /* ******* START OF CODE GENERATED BY CIMAGE.EXE ******* */
  14. unsigned char testhdr[] = 
  15. {
  16.   80,
  17.   67,88,50,66,71,73,0,158,4,16,7,8,1,9,25,32,4,36,9,11,27,16,
  18.   16,2,18,63,15
  19. };
  20. unsigned char test[] = 
  21. {
  22.   49,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  23.   0,0,0,0,0,0,0,0,255,255,255,255,255,255,192,127,255,255,255,255,255,128,
  24.   127,255,255,255,255,255,128,16,132,33,8,66,16,128,202,82,148,165,41,74,64,127,
  25.   255,255,255,255,255,128,120,15,1,140,127,255,128,79,242,254,247,169,74,0,160,9,
  26.   0,0,20,165,64,120,15,1,140,127,255,128,120,2,0,0,31,255,128,32,13,1,
  27.   140,116,165,0,151,240,254,115,130,16,192,120,6,1,140,127,255,128,120,0,0,0,
  28.   31,255,128,19,230,125,173,98,16,128,207,249,254,115,137,74,64,120,198,1,128,127,
  29.   255,128,120,0,0,0,31,255,128,75,246,193,179,105,74,0,167,57,254,127,148,165,
  30.   64,120,198,31,128,127,255,128,120,0,0,0,31,255,128,35,230,223,158,116,165,0,
  31.   151,57,224,127,130,16,192,120,6,31,192,255,255,128,120,0,0,0,31,255,128,19,
  32.   230,223,204,226,16,128,207,249,224,63,9,74,64,120,14,31,225,255,255,128,120,0,
  33.   7,128,31,255,128,75,14,220,237,233,74,0,167,241,226,30,20,165,64,120,126,31,
  34.   128,127,255,128,120,0,0,128,31,255,128,35,126,223,30,116,165,0,151,129,224,127,
  35.   130,16,192,120,126,0,128,127,255,128,120,2,192,3,31,255,128,19,124,0,176,98,
  36.   16,128,207,131,63,124,137,74,64,120,126,0,140,127,255,128,120,30,0,0,31,255,
  37.   128,75,114,126,173,105,74,0,167,137,255,115,148,165,64,120,127,0,140,127,255,128,
  38.   120,30,0,0,31,255,128,32,105,0,140,116,165,0,151,132,255,115,130,16,192,127,
  39.   255,255,255,255,255,128,120,31,0,0,31,255,128,23,228,255,255,226,16,128,200,18,
  40.   0,0,9,74,64,127,255,255,255,255,255,128,126,7,192,32,1,255,128,75,250,191,
  41.   255,255,74,0,164,1,64,0,0,165,64,127,231,224,240,65,255,128,127,193,224,48,
  42.   0,127,128,37,39,64,208,65,165,0,144,152,63,15,190,16,192,127,199,224,112,1,
  43.   255,128,127,193,224,16,0,127,128,16,134,46,103,29,144,128,202,120,159,143,254,74,
  44.   64,127,199,224,112,1,255,128,127,193,224,16,0,127,128,74,86,137,101,181,202,0,
  45.   165,57,95,159,254,37,64,127,199,224,112,1,255,128,127,193,224,16,0,127,128,37,
  46.   23,73,116,229,165,0,144,184,63,143,254,16,192,127,199,224,48,1,255,128,127,193,
  47.   224,0,0,127,128,16,150,47,180,69,144,128,202,120,159,207,254,74,64,127,199,224,
  48.   49,17,255,128,127,193,232,4,68,127,128,74,86,129,177,17,202,0,165,57,87,202,
  49.   170,37,64,127,199,226,49,17,255,128,127,192,32,0,0,127,128,37,23,202,181,21,
  50.   165,0,144,184,61,206,238,16,192,127,192,32,49,241,255,128,127,192,0,0,0,127,
  51.   128,16,144,40,181,245,144,128,202,127,223,206,14,74,64,127,192,32,49,241,255,128,
  52.   127,192,0,0,64,127,128,74,95,175,53,181,202,0,165,63,223,206,14,37,64,127,
  53.   192,32,113,241,255,128,127,192,0,0,112,127,128,37,0,32,113,145,165,0,144,191,
  54.   223,142,78,16,192,127,255,255,255,255,255,128,127,192,0,0,112,127,128,16,191,255,
  55.   255,207,144,128,202,64,0,0,32,74,64,127,255,255,255,255,255,128,127,240,0,28,
  56.   4,15,128,74,95,255,231,251,250,0,165,32,0,16,4,5,64,127,255,240,124,7,
  57.   15,128,127,255,240,28,1,3,128,37,41,64,112,6,13,0,144,132,47,139,248,240,
  58.   192,127,255,240,60,7,15,128,127,255,247,140,1,3,128,16,132,32,57,246,108,128,
  59.   202,82,152,71,249,242,64,127,255,240,60,7,15,128,127,255,240,12,1,3,128,74,
  60.   82,148,181,7,110,0,165,41,79,195,248,241,64,127,255,240,60,127,15,128,127,255,
  61.   240,12,1,3,128,37,41,68,177,126,109,0,144,132,47,203,128,240,192,127,255,240,
  62.   28,71,15,128,127,255,240,4,1,3,128,16,132,39,153,70,108,128,202,82,159,231,
  63.   185,242,64,127,255,240,28,67,15,128,127,255,240,4,0,3,128,74,82,148,221,75,
  64.   110,0,165,41,79,227,188,241,64,127,255,241,28,99,15,128,127,255,240,4,0,3,
  65.   128,37,41,69,89,107,109,0,144,132,46,227,156,240,192,127,255,240,28,3,15,128,
  66.   127,255,240,4,0,3,128,16,132,36,89,11,108,128,202,82,159,231,252,242,64,127,
  67.   255,240,28,3,15,128,127,255,247,197,248,99,128,74,82,144,28,3,14,0,165,41,
  68.   72,34,4,145,64,127,255,240,60,7,15,128,127,255,240,4,0,3,128,37,41,64,
  69.   56,7,13,0,144,132,47,195,248,240,192,127,255,255,255,255,255,128,127,255,240,4,
  70.   0,3,128,16,132,47,251,255,252,128,202,82,144,4,0,2,64,127,255,255,255,255,
  71.   255,128,127,255,252,15,1,195,128,74,82,151,245,255,126,0,165,41,72,2,0,129,
  72.   64,127,255,255,255,255,255,128,127,255,255,255,255,255,128,37,41,74,82,148,165,0,
  73.   144,132,33,8,66,16,192,127,255,255,255,255,255,128,127,255,255,255,255,255,128,16,
  74.   132,33,8,66,16,128,202,82,148,165,41,74,64,0,0,0,0,0,0,0,0,0,
  75.   0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,192,0,0
  76. };
  77. /* ******* END OF CODE GENERATED BY CIMAGE.EXE   ******* */
  78.  
  79. struct IMAGEHDR{
  80.   char id[8];
  81.   unsigned size;
  82.   struct palettetype palette;
  83. }hdr;
  84.  
  85. main()
  86. {
  87.   if(!openegascreen()){
  88.     puts("Can't open EGA screen");
  89.     exit(255);
  90.   }
  91.   if(readhdr())
  92.     putimage(300,150,test,COPY_PUT);
  93.   getch();
  94.   closegraph();
  95. }
  96.  
  97. readhdr()
  98. {
  99.   memcpy(&hdr,testhdr,sizeof(hdr));
  100.   if(strcmp("PCX2BGI",hdr.id)!=0)
  101.     return(0);
  102.   setallpalette(&hdr.palette);
  103.   return(1);
  104. }
  105.  
  106. openegascreen()
  107. {
  108.   int driver = EGA;
  109.   int mode =   EGAHI;
  110.   int result;
  111.   
  112.   if (registerbgidriver(EGAVGA_driver)<0){
  113.     printf("ERROR: Graphics System\n");
  114.     return(0);
  115.   }
  116.   initgraph(&driver,&mode,"");
  117.   result=graphresult();
  118.   if (result!=grOk) {
  119.     printf("ERROR : %s\n",grapherrormsg(result));
  120.     return(0);
  121.   }
  122.   return(1);
  123. }
  124.  
  125.